import axios from "axios";
import showMessage from "@/utils/showMessage";
import router from "@/router";
const Ciallo = axios.create({
    // baseURL: 'http://localhost:8088/', // 根目录
    baseURL: "http://ymjz.cc:8081",
    timeout: 30000, // 超时时间
    headers: {
        Authorization: "Ciallo"
    }
})

// 添加请求拦截器
Ciallo.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么
    config.headers['Authorization'] = JSON.parse(localStorage.getItem("SLuserData")) ? JSON.parse(localStorage.getItem("SLuserData"))["token"] : null
    return config;
}, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});
let antiShakeFlag = true
// 添加响应拦截器
Ciallo.interceptors.response.use(function (response) {
    // 2xx 范围内的状态码都会触发该函数。
    // 对响应数据做点什么
    return response;
}, function (error) {
    // 超出 2xx 范围的状态码都会触发该函数。
    // 对响应错误做点什么
    console.log("debug:"+error)
    try {
        if (error.response.data.msg == 401 && antiShakeFlag) {
            antiShakeFlag = false
            showMessage(error.response.data.data)
            router.push("/login")
            setTimeout(() => {
                antiShakeFlag = true
            }, 1000);
            return 0
        }
        if (error.response.data) {
            if (error.response.data.msg) {
                showMessage(error.response.data.msg + "::" + error.response.data.data)
            } else if (error.response.data.error) {
                showMessage(error.response.data.error)
            }
        } else {
            showMessage("Error!请检查控制台报错信息")
        }
    } catch { }
    return null;
});

export default Ciallo